7.2 分组之常规分组
1、按多列标签分组
分组不但可以按指定的某列为依据,同样也可以按照指定的多列分组。
2、按序列分组
如果感觉对指定列标签分组不够灵活,可以对指定列做进一步处理再分组,按姓名列的字符数分组。
1、 按手动分组
如果你的分组没有任何规律可言,只希望通过手动实现分组,那么直接在by参数构建一个与DateFrame表格行记录数相同的序列对象即可。
import pandas as pd
df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.7.01 分组原理及处理.xlsx" )
for data in df.groupby(by=df.姓名.str.len()):
print (data)
print ("------------------------------------------")
返回:
(2, | 公司 | 部门 | 姓名 | 工资 |
0 | A公司 | 销售部 | 张三 | 8567 |
1 | A公司 | 销售部 | 李四 | 8564 |
5 | B公司 | 开发部 | 小曾 | 3264) |
------------------------------------------
(3, | 公司 | 部门 | 姓名 | 工资 |
2 | A公司 | 财务部 | 许麻子 | 4563 |
3 | B公司 | 开发部 | 郭麻子 | 3623 |
4 | B公司 | 销售部 | 杨流子 | 5890) |
------------------------------------------
import pandas as pd
df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.7.01 分组原理及处理.xlsx" )
l=[ "老虎队","老鼠队","老虎队","老鼠队","老鼠队","老虎队" ]
for t,d in df.groupby(by=l):
print (t)
print (d)
print ("------------------------------------------")
返回:
老虎队
公司 | 部门 | 姓名 | 工资 | |
---|---|---|---|---|
0 | A公司 | 销售部 | 张三 | 8567 |
2 | A公司 | 财务部 | 许麻子 | 4563 |
5 | B公司 | 开发部 | 小曾 | 3264 |
------------------------------------------
老鼠队
公司 | 部门 | 姓名 | 工资 | |
---|---|---|---|---|
1 | A公司 | 销售部 | 李四 | 8564 |
3 | B公司 | 开发部 | 郭麻子 | 3623 |
4 | B公司 | 销售部 | 杨流子 | 5890 |
------------------------------------------